In many modern CMOS imagers employing pixel arrays, image sensing/frame capturing is performed using a method known as “electronic rolling shutter” (herein “ERS”). This approach utilizes at least two pointers, Reset and Read, that are continuously scanned through the pixel arrays from top to bottom, jumping from line to line at line-time intervals.
Referring to FIG. 1, there is illustrated a prior-art ERS 100 that comprises a Reset pointer 105 and a Read pointer 110 which are used respectively to reset and read out a pixel array 120. As Reset pointer 105 is scanned through pixel array 120, it resets the pixels in each line and, therefore, starts the integration of photo-charges for the pixels in the line. Some interval of time later (referred to as an “integration time” or an “optical integration time”), Read pointer 110, which is scanned synchronously with the reset pointer, reaches the lines reset by Reset pointer 105 and initiates signal readout. The distance in lines between the two pointers is referred to as “shutter width,” and the amount of time the pointers point to a particular line in pixel array 120 is referred to as “line-time.” Shutter width multiplied by the line-time equals the optical integration time for pixels in pixel array 120. The total time a pointer takes to scan a frame is referred to as “frame time.” Frame time approximately equals the line-time multiplied by the number of lines in pixel array 120.
Referring now to FIG. 2, there is illustrated a prior-art timing diagram 200 for ERS 100. For convenience, the example timing diagram 200 illustrated in FIG. 2 assumes that pixel array 120 includes nine lines (rows) of pixels. It is understood, however, that a typical pixel array 120 may comprise many more lines.
Timing diagram 200 illustrates the timing of read and reset for each line of pixel array 120. As illustrated, line 1 is reset at time 205 and read at time 210; line 2 is reset at time 215 and read at time 220; etc. Time 205 and time 215 are offset from one another by time t, which is approximately equal to the line-times for each of lines 1-9 illustrated in FIG. 2. Thus, line 2 is reset after time t elapses from the reset of line 1; line 3 is reset after time t elapses from the reset of line 2; etc. The read times of line 1-9 are also sequentially offset from one another by time t. The integration time for each of lines 1-9 approximately equals 5 t.
After line 9 is reset, ERS 100 returns to line 1 and resets it again, at time 225. ERS 100 reads row 1 again at time 230. Resetting and reading of lines 1-9 repeats using the technique described above so that the reading and resetting repeatedly rolls through lines 1-9. Hence, shutter 100 is an electronic rolling shutter.
As described above, electronic rolling shutter 100 allows for equal optical integration times for all pixels in pixel array 120. Optical integration for all pixels, however, does not happen simultaneously. Rather, because electronic shutter 100 “rolls” through pixel array 120, the actual time intervals over which pixels are integrated depend on the vertical positions of the pixels, i.e., their line numbers, in pixel array 120.
Prior-art flash techniques for using a flash to illuminate scenes captured by a pixel synchronize the flash pulse to an ERS using one of two methods: first curtain synchronization (also called “leading curtain synchronization”) and last curtain synchronization (also called “trailing curtain synchronization”). Applications typically include digital still cameras and mobile cameras.
For leading curtain synchronization, a flash occurs before frame reading begins, i.e., before a Read pointer of an ERS reaches the beginning of the frame. For trailing curtain synchronization, the flash occurs after the last row of the frame is reset, i.e., after a Reset pointer of the ERS reaches the end of the frame.